Optical codes encode useful, optically-readable information about the items to which they are attached or otherwise associated. Perhaps the best known example of an optical code is the bar code. Bar codes are ubiquitously found on or associated with objects of various types, such as the packaging of retail, wholesale, and inventory goods; retail product presentation fixtures (e.g., shelves); goods undergoing manufacturing; personal or company assets; and documents. By encoding information, a bar code typically serves as an identifier of an object, whether the identification be to a class of objects (e.g., containers of milk) or a unique item (e.g., U.S. Pat. No. 7,201,322).
Bar codes include alternating bars (i.e., relatively dark areas) and spaces (i.e., relatively light areas). The pattern of alternating bars and spaces and the widths of those bars and spaces represent a string of binary ones and zeros, wherein the width of any particular bar or space is an integer multiple of a specified minimum width, which is called a “module” or “unit.” Thus, to decode the information, a bar code reader must be able to reliably discern the pattern of bars and spaces, such as by determining the locations of edges demarking adjacent bars and spaces from one another, across the entire length of the bar code.
Bar codes are just one example of the many types of optical codes in use today. Bar codes are an example of a one-dimensional or linear optical code, as the information is encoded in one direction—the direction perpendicular to the bars and spaces. Higher-dimensional optical codes, such as, two-dimensional matrix codes (e.g., MaxiCode) or stacked codes (e.g., PDF 417), which are also sometimes referred to as “bar codes,” are also used for various purposes.
An imager-based reader utilizes a camera or imager to generate electronic image data (typically in digital form) of an optical code. The image data is then processed to find and decode the optical code. For example, virtual scan line techniques are known techniques for digitally processing an image containing an optical code by looking across an image along a plurality of lines, typically spaced apart and at various angles, somewhat like a laser beam's scan pattern in a laser-based scanner.
Imager-based readers often can only form images from one perspective—usually that of a normal vector out of the face of the imager. Such imager-based readers therefore provide only a single point of view, which may limit the ability of the reader to recognize an optical code in certain circumstances. For example, because the viewing volume of an imager-based reader is typically conical in shape, attempting to read a bar code or other image in close proximity to the scanning window (reading “on the window”) may be less effective than with a basket-type laser scanner. Also, when labels are oriented such that the illumination source is reflected directly into the imager, the imager may fail to read properly due to uniform reflection washing out the desired image entirely, or the imager may fail to read properly due to reflection from a textured specular surface washing out one or more elements. This effect may cause reading of shiny labels to be problematic at particular reflective angles. In addition, labels oriented at extreme acute angles relative to the imager may not be readable. Lastly, the optical code may be oriented on the opposite side of the package, being hidden from view of the imager by the package itself.
Thus, better performance could result from taking images from multiple perspectives. A few imager-based readers that generate multiple perspectives are known. One such reader is disclosed in the present assignee's U.S. Pat. No. 7,398,927, in the names of inventors Olmstead et al., which discloses an embodiment having two cameras to collect two images from two different perspectives for the purpose of mitigating specular reflection. U.S. Pat. No. 6,899,272, issued on May 31, 2005, discloses one embodiment that utilizes two independent sensor arrays pointed in different orthogonal directions to collect image data from different sides of a package. Unfortunately, multiple-camera imager-based readers that employ spatially separated cameras require multiple circuit boards and/or mounting hardware and space for associated optical components which can increase the expense of the reader, complicate the physical design, and increase the size of the reader. Another embodiment according to the '272 patent utilizes a single camera pointed at a moveable mirror that can switch between two positions to select one of two different imaging directions. Additionally, the present assignee's U.S. Pat. No. 5,814,803, issued to Olmstead et al. on Sep. 29, 1998, depicts in its FIG. 62 a kaleidoscope tunnel formed from two mirrored surfaces, resulting in eight different, rotated versions of the same barcode from an object on a single imager.